package com.wanggsx.library.util.fun.media.recoder;

import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.wanggsx.library.R;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Locale;

public class VoiceRecorderActivity extends Activity {

    private Button recordButton;
    private Button stopButton;

    private MediaRecorder mr;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recoder);

        // 录音按钮点击事件
        recordButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                new DateFormat();
                File file = new File("/sdcard/"
                        + "YY"
                        + DateFormat.format("yyyyMMdd_hhmmss",
                        Calendar.getInstance(Locale.CHINA)) + ".arm");

                Toast.makeText(getApplicationContext(), "正在录音，录音文件在" + file.getAbsolutePath(), Toast.LENGTH_LONG)
                        .show();

                // 创建录音对象
                mr = new MediaRecorder();

                // 从麦克风源进行录音
                mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);

                // 设置输出格式
                mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

                // 设置编码格式
                mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

                // 设置输出文件
                mr.setOutputFile(file.getAbsolutePath());

                try {
                    // 创建文件
                    file.createNewFile();
                    // 准备录制
                    mr.prepare();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                // 开始录制
                mr.start();
                recordButton.setText("录音中……");
            }
        });

        // 停止按钮点击事件
        stopButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                if (mr != null) {
                    mr.stop();
                    mr.release();
                    mr = null;
                    recordButton.setText("录音");
                    Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();
                }
            }
        });

    }

}